Growing adoption of cloud technology has triggered interest in making cloud service offerings more efficient. One feature of a cloud service is the ability to provision a compute instance to a user. Server instance provisioning goes through an elaborate workflow. Accordingly, optimizing any step in this workflow can potentially reduce the turnaround time.
Providing Infrastructure-as-a-Service (IaaS) or Platform-as-a-Service (PaaS) has been gathering momentum. The key enabler for these services is the cloud architecture. One selling point for the cloud is the idea of getting a virtual server with user-specified configuration on demand. Although on demand service refers to the delivery of a server as requested by the user, the speed of provisioning is also of essence when it comes to user satisfaction. Currently, most of the public cloud providers take time in the order of few minutes to bring a virtual server online. With an ideal goal of virtualizing an enterprise, including user desktops, existing server provisioning times of minutes is too slow. Assuming a scenario where all the desktops of a group of employees are instances in a cloud and each user releases the instance every day, ideal server provisioning time should at least match the boot time for a personal desktop computer.
As noted above, server provisioning in a cloud follows an elaborate workflow. The flow begins with the user making a request for a specific image type; thereafter the image is searched for in an image repository and transferred to the compute nodes. This is followed by attaching of the remote storage space, and finally the server is brought online, with requisite (often user-defined) configurations. Thus, the trick in reducing the server provision time lies either in reducing the time spent in the workflow, or to be prepared beforehand with a server instance for the user. While every cloud provider is focused in optimizing their provisioning workflow, these techniques rely on specific architectures. Therefore, a need exists for the use of prediction techniques to forecast the arrival of provision requests to allow the cloud to setup a server for a user a priori.